69e541ff44b2042e258360cd7a14f72c0a1f409e,h2o-algos/src/main/java/hex/optimization/L_BFGS.java,History,getSearchDirection,#number[]#,208

Before Change


        final double [] s = getS(-1);
        final double [] y = getY(-1);
        double Hk0 = ArrayUtils.innerProduct(s,y) / ArrayUtils.innerProduct(y, y);
        ArrayUtils.mult(q, Hk0);
      }
      for (int i = Math.min(_k,_m); i > 0; --i) {
        double beta = rho(-i)*ArrayUtils.innerProduct(getY(-i),q);

After Change


        int lastId = getId(-1);
        final double[] y = _y[lastId];
        double Hk0 = -1.0 / (ArrayUtils.innerProduct(y, y) * _rho[lastId]);
        ArrayUtils.mult(q, Hk0);
        for (int i = k; i > 0; --i) {
          int id = getId(-i);
          double beta = _rho[id] * ArrayUtils.innerProduct(_y[id], q);